Advances in computing enable tremendous access to desired information and resources. Databases provide computerized information storage and retrieval for this purpose. In a computer database management system (DBMS), a requesting entity (e.g., an application, an operating system, or a user) requests access to a specified database by issuing a database access request. Such requests may include, for instance, simple catalog lookup requests or transactions that operate to read, change, or add specified records in the database. These requests are made using high-level query languages. The term query denominates a set of commands for retrieving data from a stored database. Queries take the form of a command language that lets programmers and programs select data, insert data, update data, locate data, and so forth.
A data abstraction model is a programmatic framework, developed to provide a requesting entity (e.g., an end-user or application) with an abstract representation of physical data. An abstract data model logically describes an underlying physical data structure. In this way, the requesting entity is decoupled from the detailed structure of the underlying physical data to be accessed. Logical queries based on the framework can be constructed without regard for the makeup of the physical data. Further, changes to the physical data do not necessitate changes to applications that access the physical data.
Using a data abstraction model, abstract queries based on the framework can be constructed without regard for the makeup of the underlying physical data. For instance, assume a user in a hospital wants to determine last and first names of employees having worked over ten years. To this end, the user may specify the following abstract query: “FIND LAST NAME, FIRST NAME” and “WHERE YRS EMPLOY-RESULT>10”. The logical field names “LAST NAME”, “FIRST NAME” and “YRS EMPLOY-RESULT”specified in the abstract query correspond to logical field names of respective logical fields in the data abstraction model.
Some research tools take querying a database a step further. For example, IBM's Data Discovery and Query Builder (DDQB) allows researchers and medical providers to analyze and identify correlations between and within data sets instead of having to manually search through records or requiring the intervention of a database administrator.
While a database can be a very effective research tool, only the information contained in the database is able to be queried. For this and other reasons, service-oriented architectures (SOAs) were created. An SOA describes IT infrastructure that allows different applications or services to exchange data with one another as they participate in business processes. The process of communication involves either simple data passing or two or more services coordinating some activity. Services are intrinsically unassociated units of functionality, which have no calls to each other embedded in them. Example services may include filling out an online application for an account, viewing an online bank statement, or placing an online booking or airline ticket order. Instead of services embedding calls to each other in their source code, protocols are defined that describe how one or more services communicate with each other. SOAs also link databases, broadening the scope of available information to be researched.
The increased access and capability provided by SOA processes also increases the need to focus requests for information and other services. Unfocused searches of the relatively larger pool of services and data can result in irrelevant results, as well as an overwhelming amount of information.